using shared global initialization method
adding documentation
adding MIT license