Fixing the case where a single char is provided from breaking the algorithm

- Also making the algorithm more verbose, for the sake of readability

#6 
Scratch that, i totally defer to you man. looks awesome!