seperate model and controlelr.