update Timeline/Event to use the subclass preprocessor rather than inheritance