Initial cut at elastic list widget