- [ ] NewTrait<ContextType> for P ---> can call check with ContextType - [ ] Figure out if easy to use for built in contexts - [ ] Replace Reason::Custom with this