Clean the Gemfile.
Add validation for reservation overlapping.
Refactor.
Fix #overlaps? in case when any data is empty.