Also needs to work with LDC and GDC.