still pseudocoding. making things more concise.