Fast (almost works)