requires instead of takes in thm's