added a generic action class