working on #134
close #142, worked on #134