type checks
clear dispose method