added delagte stuff and naming convention for overloads