Separating functions file.

Thinking about a cleaner interface too.  Cerulean looks good, but will
require some tweaking...