assignment slow version