significant refactoring of TodoMVC, pretty good looking now :)