add lifecycle ready hook