improve scala supportting