Bit operations + tests implemented.
Use NativeType instead of just str everywhere. That way we can create a Protocol class that decodes to bytes.