fix: remove should use an angular promise
feat: throw errors on missing parameters
chore: cleanup