added some comments for documentation