fixes #120
fixes #121
fixes #122
fixes #117
#42
fixes #21
#121
fixes #123
fixes #124
fixes #42
#67
#50
#53