Adding default argument support.
rename class and protocols type name.
Removing some unused codes.
Merge pull request #31 from dumganhar/default-arg-support

Adding default argument support and some improvements