bugfix && improve