implemented q