added gpl preamble