qt implementation