break code out into logical components.