Refactored + clean-up