Heavy refactoring for a more robust implementation
Update README to reflect the latest changes
Initialize to array by default