refactor the adapter, next is fragment