completely client and partially front end