added fire_once() functionality and made on.execute able to take a block, proc, or lambda
support for making an object garbage collectable but need to test to make sure it is working