implemented discard functions