Refactoring
Redesign + code cleanup