Refactored all