hook methods