refactored primitives into an interface with static inner classes for each level
refactored primitives into an interface with static inner classes for each level