add some life cycle interface