Added lots of comments for better understandability
Commented everything but get/post update