created public and interal api for CPU to unit test on smaller scale