better structure and new regex route support