write some comments for documenting purpose