#19 added some comments