Adapted builder definition
Added generic interfaces
Added dependency interfaces