use butterfly'
Use reverse instead of direction argument
experiments
TODO
polyD etc