better testing, slightly more useful interface