Generic Type for State
Merge pull request #70 from zrcoder/master

Using closure of generic to handle generic issue of State