refactoring, holy f*** that took a lot of work, #19