Refactored GP init