second pass at $upper: working now?