add user tests; moved user selection logic to model