moved acquire and realese functions