moved GP modular inferfaces to its own file