I agree - arrays seem to be a good choice here. Using arrays would also make inserting or deleting an ingredient or instruction step very easy (simply push/splice/slice as necessary). Hashes would make those modifications more difficult, since you'd have to renumber the keys after every change.