implemented z