public IVPNumber remainder(IVPNumber number, Context context, DataFactory factory, HashMap map) {
		IVPNumber result = factory.createIVPNumber();
		map.put(result.getUniqueID(), result);
		if(getValueType().equals(IVPValue.INTEGER_TYPE) && number.getValueType().equals(IVPValue.INTEGER_TYPE)){
			int resultInt = context.getInt(getUniqueID()) % context.getInt(number.getUniqueID());
			result.setValueType(IVPValue.INTEGER_TYPE);
			context.addInt(result.getUniqueID(), resultInt);
		}else{
			double resultDouble = 0.0;
			if(getValueType().equals(IVPValue.DOUBLE_TYPE) && number.getValueType().equals(IVPValue.DOUBLE_TYPE)){
				resultDouble = context.getDouble(getUniqueID()) % context.getDouble(number.getUniqueID());
				result.setValueType(IVPValue.DOUBLE_TYPE);
			}else{
				if(getValueType().equals(IVPValue.DOUBLE_TYPE)){
					resultDouble = context.getDouble(getUniqueID()) % context.getInt(number.getUniqueID());
				}else{
					resultDouble = context.getInt(getUniqueID()) % context.getDouble(number.getUniqueID());
				}
			}
			result.setValueType(IVPValue.DOUBLE_TYPE);
			context.addDouble(result.getUniqueID(), resultDouble);
		}
		return result;
	}