action and main block