finished BaseObject class