basic handler and strict handler implemented