added a few extra checks in blocking_object to enforce some contracts