Steps

This leaves the following three simple steps to implement custom behavior: