WIP Functionalize

In terms of the real code, this is complete. Just have to get testing
working.