added 'Timestampable abstract class' to avoid code duplication