added idempotence of left exact subobject functor