view adapters but has a few bugs