public List<Position> getPositionsAround(Position position) {
		if (position == null)
			throw new IllegalArgumentException("Position can't be null!");

		Set<Position> positions = new HashSet<Position>();
		if (validPosition(position))
			positions.add(position);

		for (Movement move : Movement.values()) {
			Position newPosition = move.newPosition(position);
			if (validPosition(newPosition))
				positions.add(newPosition);
		}

		return new ArrayList<Position>(positions);
	}