implemented Constructors and Predicates