more annotation and more understanding