start introducing some abstraction in dealing with libraries