refactoring key methods