added Action class, a base class for 3m actions