Basic updating (thanks to unsigned char*