pureRunner is a not exported struct and it was set as return value for few exported method, in this change we return Agent which is the interface implemented by pureRunner to avoid to leak an unexprted type.