added concept of calibration and changed the logic layer from array to lists