moved serialization utility methods to separate class
location in sound event command is now optional
languages now use maps, added API to register custom lang strings