moving update dsl into its own trait