refactored all procedure elements