Advanced Function Definitions

And small style changes