from the todomvc project ... but only the essentials.