added the withTitle and wihtTemplate methods to allow setting fields
added smarter route id generation for more readable ids like 'hello-some-path'
added code comments