Add unique pointer to reduce dependencies