Provide a reusable constructor