Issue #20 , #28, #29 and #30