Final code with half comments