decouple actions from templates