action generator - first attempt