adds attr_accessor for user_input
refactors question eval and cleans up machinery module