Adds extra arguments to remove methods

Moving from #139 which moved from #130 which resolved #97 which this in improving upon... or something like that.

- Cleans up code
- Fixes DEBUG behavior
- Adds a bunch of tests