first working draft - client only