add ability to use a object within its own definition

and fix the test that was intended to catch this