refactored, rewrote copy, rearranged