New design and dry code
Merge branch 'feature/new_design_and_dry_code' into develop