further refactoring of methods