list partition. Needs testing