move function
first solver function
partial
seems to work