revise codebase to work with both light and dark themes