expand_powers needs to be rethought, but otherwise everything is fine