add keycontraints, cascde update, and task list