If we're breaking this anyway, should this just be a functionscheme?