added G
PL headers, split learning into separate file