make code nice + comment everything
add a couple more comments