weird but works
explanations!