still this mother fucking refactoring