use visibility=hidden where available
implement proper move construcor in class Delegate