Resolves #58, resolves #59, fixes #60