implemented TODOs