init self before use