split into files and add link interceptor
add error page