implementation
binary search
bit manipulation