shared instance added, predicate made accessible by shared instance only
'has' method added
code made a little more readable :)