very close to first draft
it works