move spinlok inside push()