Use Object.create instead of slow __proto__
Specify "this" for callback function correctly
Output more message for debugging
Detect DOM something more safely
Specify "this" for callback function correctly