Initial draft for adding Route model and APIs

I'm not sure if we don't want to use the `errors` pkg here.