refactor to use classes instead of removal
docs