Different approach to #159 - using Enum.