2.0 Refactor