cleaned up part3