Shouldn't this logic be inside of leftItem()/rightItem()?