change names
add tests; refactor tests