Criteria Composition Implementations

And solving the generics input issue.