v2.0 DRY and Clean