created our own bit operations