gathering not working but implemented
fixed merge