begin implementation for circle key generation
change license to lgpl