move calculator client into its own file