added stateless framework