Extracted ADTs into the Core module.