redesign to dark and refactor