design improvement for list