Custom objects

Custom object functionality, docs, and tests
Also very handy.