resolve #63
resolves #62
resolve #60
resolve #59
resolve #58