throw out needless abstractions
needed refactoring
factored