fixes #26 , fixes #27 , fixes #28 , fixes #29

fixes #30