Adds extra arguments to remove methods

Moving from #130. Resolves #97.

- Cleans up code
- Fixes DEBUG behavior
- Adds a bunch of tests