initial inefficient implementation of defender methods