Added Effect and AbstractEffect