finish User document and simple signup, refactor tests