lint errors
refactor page and add tests