resolve #89
resolve #88, resolve #81