added abstraction libraries