- completed delegate pattern part