added engine.random.key() and engine.random.property(), improved comments