add util
 add comments
 add defualt construct for effect::vertex