Fully fixes #96
Closes #100
Squashed commits.
Wow, @50Wliu has an odd taste in formatting...