write a test, add @throws, resolve naming conflicts