resolve #19
merge with master