fix #19 and sync with chinalist/abputilis