cleaned up discard method