implimented 64 bit