replace Add with Map
add version and a test