introduce Action class (untested)
fixes