add initialize_args & TargetObject base class
refactoring + specs