Fixed arrowhead code structure

Solution to leveluprails arrowhead exercise
This method is doing too much. Move most of this stuff, including the validations to separate methods