start
first try
add direction
refactoring