doaction implementation