resolve #39, resolve #30