license and headers added