a lot of work in modelling users