complete user methods