minor refactoring
add ObjFactory
minor update