Refactored much