#15 refactored is-client component