more documentation and use GM module namespace