all subroutines working