refactoring
add storage
aadd tests