On the design of group strategy-proof mechanisms: domains, ranges and special conditions