#29 added some documentation