update tests to make it more dry, fixes #23, fixes #24, fixes #25, fixes #26