Advanced object oriented programming