moved Proc to Internal.Proc to make it clearer its not part of the public API