add nonfuntional pseudocode