diff --git a/assignments_2021/assignment3_sampling/assignment.tex b/assignments_2021/assignment3_sampling/assignment.tex
index 8bdb163793dab065e7eba55e9dc91d770385c2d6..35428067cd9bf428ff00d4b843522186c19df286 100644
--- a/assignments_2021/assignment3_sampling/assignment.tex
+++ b/assignments_2021/assignment3_sampling/assignment.tex
@@ -44,7 +44,7 @@ git push
 We also provide a reference implementation for assignment 2, you can download it from TUWEL.
 If you didn't implement light surface sampling, you should use it, as we will need it for next event estimation.
 
-\section{Sample Warping (5 points, 9 bonus points)}
+\section{Sample Warping (7 easy points, 9 bonus points)}
 Random numbers are often generated uniformly in the range between 0 and 1. We can combine multiple such random numbers to sample cartesian domains uniformly, but different distributions are needed, e.g., to get uniform distribution in a non-cartesian domain (for recursive rendering, we need to sample the hemisphere for instance), or for importance sampling techniques. This task can be fully solved in \texttt{warp.cpp}.
 
 The process of \emph{changing} an existing distribution is called warping.
@@ -63,7 +63,7 @@ For an introduction on how to use \texttt{warptest} and what each distribution i
 
 \begin{description}
 	\item[squareToTent] 2 points, test your basic Monte Carlo sampling knowledge, \textbf{bonus}
-	\item[squareToUniformDisk] 2 points, \textbf{required}
+	\item[squareToUniformDisk] 3 points, \textbf{required}
 	
 	\textbf{Sampling:} 
 	Use the input canonic variables to generate samples $(r,\theta)$ in polar coordinates where $r \in [0, 1)$ and $\theta \in [0, 2\pi)$, such that they are uniformly distributed when transformed to Cartesian coordinates $(x,y)$. 
@@ -83,7 +83,7 @@ For an introduction on how to use \texttt{warptest} and what each distribution i
 	
 	\item[squareToUniformSphere] 2 points, can use it to implement spherical lights, \textbf{bonus}
 	
-	\item[squareToCosineHemisphere] 3 points if inversion method, 1 point if Malley's, \textbf{required}
+	\item[squareToCosineHemisphere] 4 points if inversion method, 1 point if Malley's, \textbf{required}
 	
 	\textbf{Sampling:} The input is a 2D vector \texttt{sample} that holds values of two canonical random variables $\xi_1, \xi_2$. 
 	Use them to generate samples $(\theta, \phi)$ on the unit hemisphere such that they have a distribution proportional to $\cos(\theta)$ (i.e., more samples the closer we get to the pole of the hemisphere) and convert them to $\omega$ with the transformation for spherical coordinates.
@@ -105,22 +105,11 @@ For an introduction on how to use \texttt{warptest} and what each distribution i
 	
 \end{description}
 
-\section{Importance Sampling}
-\paragraph*{Use cosine-weighted hemisphere samples for diffuse materials (10 points)}
+\section{Importance Sampling (18 points, 20 bonus points)}
+\paragraph*{Use cosine-weighted hemisphere samples for diffuse materials (8 easy points)}
 Use the cosine-weighted hemisphere sampling method, as described in the lecture. First make sure that your direct lighting and path tracing integrators use the diffuse BSDF class appropriately, then extend the diffuse BSDF with cosine-weighted hemisphere sampling. Ideally, you can reuse your warping solutions from the first part of this assignment! The BSDF should switch between using cosine-weighted and uniform hemisphere sampling, depending on the value of the \texttt{use\_cosine} flag provided by each object's material (default: \texttt{false}). Note that this affects both the sampling and PDF computation! Confirm for yourself that cosine-weighted hemisphere sampling can reduce the noise in your scenes. To test this, compare the output of the test scenes that end in \texttt{uniform} with the ones that end in \texttt{cosine}. The latter use cosine-weighted hemisphere sampling and should give slightly cleaner results.
 
-\paragraph*{Next Event Estimation (15 points, 5 bonus points)}
-Implement next event estimation (NEE) for your diffuse path tracer, according to the lecture slides. It should be active depending on a boolen \texttt{nee} in the test file (default \texttt{false}).
-That is, on every bounce, you create one light surface sample and try to connect to compute direct lighting with surface sampling.
-Another ray is then sent out to retrieve indirect light in the next bounce. Make sure that you use the BSDF to generate the indirect sample to benefit from cosine-weighted hemisphere sampling of indirect light on materials that use it. 
-If you implement NEE, be careful not to erroneously count the emittance twice (i.e., first when doing the light surface sampling and then when hitting a light source randomly). 
-To get a correct image, the emittant surface points that your ray hits should only be considered on the first intersection. 
-For all other light, the illumination is computed via direct lighting, i.e., one bounce in the future (hence, "next event").
-For further details, please see the lecture slides. Just as a heads-up: implementing NEE will dramatically improve the quality of your renderings! In combination with spatial acceleration structures, you should now be able to render impressive scenes fast!  To test this, compare the output of the test scenes that end in \texttt{uniform} or \texttt{cosine} with the ones that end in \texttt{nee}. The latter use next event estimation and should give significantly cleaner results.
-
-If you pay close attention, you may see that NEE is just a very special case of multiple importance sampling! The way that NEE was described in the lecture was using the 0/1 heuristic of MIS: at the first hit, we choose hemisphere sampling for light sources, afterwards we use light surface sampling. Hence, we can say that we use MIS weights for both techniques that are either 0 or 1, depending on the recursion depth. Instead of this 0/1 heuristic, you may also implement NEE with the balance heuristic (5 bonus points). This is a somewhat esoteric exercise and will probably not make a significant difference in your renderings. It is mostly for you to test your limits on combining multiple complex concepts!
-
-\section{Bonus: Multiple Importance Sampling for Direct Lighting (10 points)}
+\paragraph*{Bonus: Multiple Importance Sampling for Direct Lighting (10 points)}
 Implement MIS between hemisphere sampling and light surface sampling using the balance heuristic in your direct lighting integrator.
 Whether or not MIS is used should be parameterizable via boolean \texttt{mis\_sampling} (default \texttt{false}) in the test files.
 Choose between the two sampling strategies with equal proability, generate the sample using the chosen method and compute the sample's probability with both methods.
@@ -132,6 +121,17 @@ You can test MIS on the \texttt{ajax-2lights\_dl*.xml} scenes, where you should
 Feel free to also explore ideas that we didn't describe here (rays that miss are black by default, but you could use a sky colour or an environment map).
 These things do not go unseen :)
 
+\paragraph*{Next Event Estimation (10 points, 10 bonus points)}
+Implement next event estimation (NEE) for your diffuse path tracer, according to the lecture slides. It should be active depending on a boolen \texttt{nee} in the test file (default \texttt{false}).
+That is, on every bounce, you create one light surface sample and try to connect to compute direct lighting with surface sampling.
+Another ray is then sent out to retrieve indirect light in the next bounce. Make sure that you use the BSDF to generate the indirect sample to benefit from cosine-weighted hemisphere sampling of indirect light on materials that use it. 
+If you implement NEE, be careful not to erroneously count the emittance twice (i.e., first when doing the light surface sampling and then when hitting a light source randomly). 
+To get a correct image, the emittant surface points that your ray hits should only be considered on the first intersection. 
+For all other light, the illumination is computed via direct lighting, i.e., one bounce in the future (hence, "next event").
+For further details, please see the lecture slides. Just as a heads-up: implementing NEE will dramatically improve the quality of your renderings! In combination with spatial acceleration structures, you should now be able to render impressive scenes fast!  To test this, compare the output of the test scenes that end in \texttt{uniform} or \texttt{cosine} with the ones that end in \texttt{nee}. The latter use next event estimation and should give significantly cleaner results.
+
+If you pay close attention, you may see that NEE is just a very special case of multiple importance sampling! The way that NEE was described in the lecture was using the 0/1 heuristic of MIS: at the first hit, we choose hemisphere sampling for light sources, afterwards we use light surface sampling. Hence, we can say that we use MIS weights for both techniques that are either 0 or 1, depending on the recursion depth. Instead of this 0/1 heuristic, you may also implement NEE with the balance heuristic (10 bonus points). This is a somewhat challenging exercise, not so much in code, but to get to the correct solution mathematically and making sense of it. It is mostly for you to test your limits on combining multiple complex concepts!
+
 \section{Further Bonus Points}
 
 \paragraph{Metropolis-Hastings for Cosine-Weighted Hemisphere Sampling (10 points)}
@@ -139,8 +139,8 @@ The Metropolis-Hastings algorithm is an advanced and very essential achievement
 However, depending on the problem you pose it, it might not be the most efficient method for getting a solution. For this task, familiarize yourself with the Metropolis-Hastings algorithm and Metropolis Sampling (Wikipedia and PBR book, chapter 13). Use the Metropolis-Hastings algorithm to perform cosine-weighted hemisphere sampling without relying on a closed-form solution. 
 How does it compare to your previous solution for cosine-weighted hemisphere sampling?
 
-\paragraph{Metropolis Light Transport (up to 300 points)}
-Metropolis Sampling is the basis of the Metropolis Light Transport algorithm. If you have too much time on your hands and want to go down as a hero in the history of this lecture, feel free to attempt an implementation of it. Chapter 16 of the PBR book contains some introductory information, but you will have to spend additional effort researching the required backgrounds. Good luck!
+\paragraph{Metropolis Light Transport (up to 1000 points)}
+Metropolis Sampling is the basis of the Metropolis Light Transport algorithm. If you have too much time on your hands and want to go down as a hero in the history of this lecture, feel free to attempt an implementation of it. Chapter 16 of the PBR book contains some introductory information, but you will have to spend additional effort researching the required backgrounds. For something special like this you may take your time until the end of the semester (or even beyond). Contact us for details if you need further guidance or suggestions. Good luck!
 
 \section*{Submission format}