Deciding to make different APIs for now.
Adding more files, made a type class interface, State has some work to do.