more validation and added spin.js
Derek's changes.... weird push (hope it works)