implement DL-optimizer