Optimizations.
Tests in separate file.
Change test input values.
Add shell executable file.