added security, bugfixes, use custom Route class with trait