enough refactoring for today D: