easy to use public delegate