add some user checking