correction algorithm is shamrock, handle it my future self