Assignment-ready version