refactor existing methods