Removed the need for generics in AbstractEffect