lots of experimental changes