resolves #15, resolves #17