Generalized some object related code into new BaseObject
Make BaseObject abstract
Generalized some object list related code into new BaseObjectList