ok. this is also a great thing to break out into its own function