pulled from mono project. abstract Console to allow remoting.