add more generic support