refactored Methods