circulate now pushes only if not null