adding data structure, model and controller