todos: mark and delete, msg update