Change booleans to not be bitfields
Move messy macro to method call