updated with working bitwise methods