slow version done.