finish 3a, but may be too slow