Crub the auto usage, use unique_ptr, use correct types instead of QList