User domain model

- singleton as enum
- better exception handling in the AbstractFacade