finished refactoring. need to update /w state list