Forms refactored

This is a much more refactored version of forms.module.