half done, subroutine
Support Subroutine, test needed
remove useless code
remove debug code