punchout implementation