Initial draft for adding Route model and APIs

Please comment every single method of any interface you make public.