Refactored everything. Created a new trait.