Fixes #6 #7 #8.