combined the predicates of IfThenElse and IfThen together.
also created a constructor for the IfThenElse (that deals with both cases)
created a process function that deals with actual parsing, this function currently
 supports constants,variables, IfThenElse