replaced @param with @tparam where appropriate