tmp #4:
almost compile