All methods (←↑→↓) implemented with unit tests.