REF: some modularity around main controller and user model