broke down work into well defined functions