routing implemented, needs testing