added a ton of delegate methods