ScheduleElements are created using a String event identifier, and a Schedule is then interrogated via this String. The reason for this design decision is simple: it's as described in Fowler's article. But is it the best choice? For integration into real world usage, would some other type be better—e.g., Object? This would allow the creation of a Schedule indexed by some relevant object in a real application, rather than having to translate to and from strings.