page adapter and custom adapter