T *insertItemBefore(T *newItem, unsigned int index)
{
m_impl.insert(index, newItem);
if (index < m_vector.size()) {
m_vector.insert(index, newItem);
} else {
m_vector.append(newItem);
}
return newItem;