all create, update, destroy actions are wrapped in transactions