added bit operation