React router is optional