This all needs to change but understand the conditions first