copy pasted in a lot of stuff into the lemma