refactored, removed TODOs