precomp for push