includes, more translation from pseudocode