roughly done with punchcard