refactor contrib form based on rowena's feedback