clean it, make it work better
add left and right logics