Total refactor!