Reflection and enums for the win!