added model, view  and controller