added some more  contexts
started on Op-based impl