implement 3 different refactor options pending review. discuss which format is
better, why it is better, and clarify how they are different