refactored the constructor for monoid actions