move general APIs to SGCore