add bit shifting