loop
stateless on list