added bunch of comments