Add captcha, improve data model