spliting lists components

The lists component was doing pretty much all and nothing.

This PR splits it into more reusable components.