quantum subroutines