refactoring of object program