work on better abstracting actions