Big changes to Shirwa's code.
Big changes to Shirwa's code.