Allowing multiple notification types, creating abstract concrete class