Added comments on most methods