added delegate hooks