Almost done. Note that I give up to use weight