finish but need tweak