6.3.4 Writing custom backends