Optimized for memory.
Better exception handling.
optimized