adding support for different states