resolves #280
resolves #258
demo #284