ICC library

Bistrita's final deliverable
Pamplona's final deliverable
Catanzaro's final deliverable