Uses curry
First full draft.