appointment model passes tests