Addresses #78, #69, #64, #63 and #26