design : step 2
Added design : last step