add makeList template function