consolidated and refactored methods