handle all in properly