Added plenty of documentation. Hope it helps