Addresses #115, #113, #99