A framework for building routing components