Custom objects

Custom object functionality, docs, and tests
Very nice touch!