Hardware is currently manually instantiated and configured. This can be error prone and hard to generalize across hardware variants.