a draft, but working