works with immutant!
make it work with a queue