Split ListModel into interface and implementation