changed from manual state pushing to using app-router