###PSEUDOCODE HERE ###real code below