initially refactored methods