Change API to support Scope and State