refactored method order