moved state classes to separate package