Updated def function overloading, added little templating engine

Function overloading updated with the ability to ad non mandatory arguments by putting the * in front of a desired type. Add non-mandatory arguments only at the end.