rework punchcard api, graph