user pages refactor