Fully fixes #96
Closes #100
Squashed commits.

Wow, @50Wliu has an odd taste in formatting...