adding a GP implementation, thanks to foreman-mackey