added wraparound functions