build user authentication first, version 1.0