introduce with() convenience method