type param isn't necessary