new todo, better runtime exception handling, support null fields in tags