add delegate methods