initial work
more progress
done
test