big refactor, more page features