Resolved #16 #19 #20 #21