Refacted code out into seperate methods for better CodeClimate score. Perform validations before trying to actually save.