[bugfix]  init is called twice

1. [bugfix] init is called twice when an object is instantiated from a grandchild class of CoreObject.
2. [refactor] I do not know if the refactor is appropriate, please tell me what you think.
updated on master