fixed a exception caused by operators, since they are inheritance and it can be valid to represent operator list as a variable, the only way like SeH suggested is to only use getSubject and getPredicate, and do operator calling and such only if the subject is indeed a Product and the Predicate is indeed a operator.