public boolean moveItem(FieldItem item, Position positionFrom, Position positionTo) {
        if (!isOccupied(positionFrom)) {
            return false;
        }
        if (!isInField(item)) {
            return false;
        }
        if (!item.getPosition().equals(field.get(positionFrom).getPosition())) {
            return false;
        }
        if (isOccupied(positionTo)) {
            return false;
        }
        if (!validPosition(positionTo)) {
            return false;
        }
        field.remove(positionFrom);
        item.setPosition(positionTo);
        field.put(positionTo, item);
        return true;
    }