Improved Function Support

1. < reqd args possible
2. args in right order