more feature refactors