still working on recursive remove, added some javadocs to kill some time