simplify this to require a context object in the settings