added warn method and other usabilities.