fixes #107 fixes #143 fixes #151 fixes #185 fixes #195 fixes #215 fixes #219