implicit casting
functions
passing by refference