taking a stab at a DES implementation