Bleeding edge

pull semi-experimental changes onto master branch