changed Event Builder to abstract