item's config must be passed to constructor