note internal refactor of delegate pattern