for performance reasons, use combinator-light versions of item operations