basic user and group models and unit tests