Merge tag '0.4.0' into develop

0.4.0
Refactor.
Refactor.
Refactor.
Refactor.
Add array_spec.rb.
Refactor.
Fix bug.
Refactor.
Version bump.
Merge branch 'release/0.5.0'