refactored more