diy callbacks part 1 spec