Add the done and undone feature to Controller, Parser and Data component