type not always needed