prefer Object.create is hot-spots