added some data xfer logic, added snap back position