use Object.defineProperty so statics are safe.