initialize npm
add implementation
tests