refactoring dataobject module