WIP
Add most functionalities
Merge pull request #12 from ryandang/issue14

Issue14