add validations to software.rb