some renaming for clarity
add test