Hi Guys, any help would really grateful, I am working now the design. I ended up having this design: *** Database Interface that models a database with all the normal database functionalities. createDataTable(String dbname) getRecordCoun(String dbName)..... *** Database interface and has a hashmap to store data Objects in it. (cause database may have more tables later) *** Data Class models a table and it has got a LockManager instance. *** LockManager Class has a hashmap instance to store records--clients *** LocalDatabase implements Database Database interface; ++++++++++++++++++++++++ In the Server Package: Server interface that has : Database getDatabase() *** ConcreteServer which will initiate only ONE remotedatabase object, and will give every client reference to that object.