first commit
initial release
add travis
support Optional arguments
prototype support
fix typos