refactor, tweaks, better example