Address issues #19 #20 #21