refactored ensureId, now using it on Evented#id, maybe need more tests