separating the actions into a simple interface