this uses LGPL and not GPL