Added delegate property and some private methods