create interfaces structure
remove subject
include a/an assertions
create type matcher
include tests for TypeMatcher
create AbstractBaseMatcher
include type matcher language chains
support negation in type matcher