1. A method for synchronizing information between a client and a server comprising the steps of: initializing a communication system, said communication system comprising a plurality of objects, said objects capable of: maintaining keys and values; displaying a means to accept user input; and determining when to invoke an action; constructing a first package; transmitting said first package to said server; constructing a second package; transmitting said second package to said client; and updating said keys and said values.