more logic moved to SGCore