added alot of comments