re-write with react-router