finishing the last part, need double checking