Split BCIInterface and pimpl for readability