Colinmacdonald/todo refactor

refactor.

let me know what you think.