Contest register system

Don't merge, please review this part first.