Initial work making more generic