at long last complete (for now)