making things more generic