Resolve #182, resolve #184, resolve #167
Resolve #178