added GPL statement