smoother I think
Logic updated