fix #7. and have to refactor #8