fix and improve signup