refactor implementation of sublists using interfaces
continue to add devices, working on generator, not yet complete