cleaned up models, form validation, and updated spinner script