add error pages
add adaptive
add more tests