top-down with print