move controls into react component and more pure overrides