Make CommandAction generic