vary depending type