easier api generation might work *might*