fill in functionality
add a couple tests