make it faster
got an edge case working, prepare for further tuning