refactoring: seperated operation-obj creation(paring) from operation typing