adds user model, refacto workflow model and implementation