Faster, and sort of works