todo item model and spec