improved model view communication, cleaned up model a bit