optimise by zgq