pseudo code and comments