light refactor abstract actions