better content type handling