I think this API for packets looks nicer, maybe.