added routes
added factory methods