refactored. Chaining general action