huge code refactors and new remove option added