implementing timestampable and soft delete behaviour for records