use std::unique_ptr instead
Module defined