BlackPearl framework