refactor, not sure I like my redesign