doesn't work at all. trying new approach
old changes
more old changes