use delegates for installation