this nearly works
finally working