Updated state to be generics

* Updated tests to test by generics
    - added decimal, string and integer as the basic state