rewrite the interface for model user, and add the tests for model user.
continue on code reconstitution.
minor UI changes.