Index: branches/OaaS/HeuristicLab 3.3 Services.sln
===================================================================
--- branches/OaaS/HeuristicLab 3.3 Services.sln	(revision 9549)
+++ branches/OaaS/HeuristicLab 3.3 Services.sln	(revision 9550)
@@ -69,4 +69,6 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.Optimization.Scaler", "HeuristicLab.Services.Hive.Scaler\HeuristicLab.Services.Optimization.Scaler.csproj", "{D03B1A10-9C88-4C4B-BCCF-4F98CDE863D3}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.Optimization.Billing", "HeuristicLab.Services.Optimization.Billing\HeuristicLab.Services.Optimization.Billing.csproj", "{5DC3E4F1-E21B-4C18-8921-88058E86FB07}"
 EndProject
 Global
@@ -360,4 +362,16 @@
 		{D03B1A10-9C88-4C4B-BCCF-4F98CDE863D3}.Release|x64.ActiveCfg = Release|Any CPU
 		{D03B1A10-9C88-4C4B-BCCF-4F98CDE863D3}.Release|x86.ActiveCfg = Release|Any CPU
+		{5DC3E4F1-E21B-4C18-8921-88058E86FB07}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{5DC3E4F1-E21B-4C18-8921-88058E86FB07}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{5DC3E4F1-E21B-4C18-8921-88058E86FB07}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{5DC3E4F1-E21B-4C18-8921-88058E86FB07}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{5DC3E4F1-E21B-4C18-8921-88058E86FB07}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{5DC3E4F1-E21B-4C18-8921-88058E86FB07}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{5DC3E4F1-E21B-4C18-8921-88058E86FB07}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{5DC3E4F1-E21B-4C18-8921-88058E86FB07}.Release|Any CPU.Build.0 = Release|Any CPU
+		{5DC3E4F1-E21B-4C18-8921-88058E86FB07}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{5DC3E4F1-E21B-4C18-8921-88058E86FB07}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{5DC3E4F1-E21B-4C18-8921-88058E86FB07}.Release|x64.ActiveCfg = Release|Any CPU
+		{5DC3E4F1-E21B-4C18-8921-88058E86FB07}.Release|x86.ActiveCfg = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
Index: branches/OaaS/HeuristicLab.Services.Optimization.Billing/HeuristicLab.Services.Optimization.Billing.csproj
===================================================================
--- branches/OaaS/HeuristicLab.Services.Optimization.Billing/HeuristicLab.Services.Optimization.Billing.csproj	(revision 9550)
+++ branches/OaaS/HeuristicLab.Services.Optimization.Billing/HeuristicLab.Services.Optimization.Billing.csproj	(revision 9550)
@@ -0,0 +1,56 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{5DC3E4F1-E21B-4C18-8921-88058E86FB07}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Services.Optimization.Billing</RootNamespace>
+    <AssemblyName>HeuristicLab.Services.Optimization.Billing</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.ServiceModel" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Interfaces\IOptimizationBilling.cs" />
+    <Compile Include="Model\Model.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
Index: branches/OaaS/HeuristicLab.Services.Optimization.Billing/Interfaces/IOptimizationBilling.cs
===================================================================
--- branches/OaaS/HeuristicLab.Services.Optimization.Billing/Interfaces/IOptimizationBilling.cs	(revision 9550)
+++ branches/OaaS/HeuristicLab.Services.Optimization.Billing/Interfaces/IOptimizationBilling.cs	(revision 9550)
@@ -0,0 +1,17 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.ServiceModel;
+using System.Net.Security;
+using HeuristicLab.Services.Optimization.Billing.Model;
+
+namespace HeuristicLab.Services.Optimization.Billing.Interfaces {
+  [ServiceContract(ProtectionLevel = ProtectionLevel.EncryptAndSign)]
+  public interface IOptimizationBilling {
+    public IList<Product> GetProducts();
+    // payment methods via enumeration
+    public void SaveOrder(Order order);
+    public IList<Order> GetOrdersByState(OrderState state);
+  }
+}
Index: branches/OaaS/HeuristicLab.Services.Optimization.Billing/Model/Model.cs
===================================================================
--- branches/OaaS/HeuristicLab.Services.Optimization.Billing/Model/Model.cs	(revision 9550)
+++ branches/OaaS/HeuristicLab.Services.Optimization.Billing/Model/Model.cs	(revision 9550)
@@ -0,0 +1,83 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace HeuristicLab.Services.Optimization.Billing.Model {
+  public class ContactInformation {
+    public long Id { get; set; }
+    public string OrganizationName { get; set; }
+    public string Street { get; set; }
+    public string City { get; set; }
+    public string State { get; set; }
+    public string PostalCode { get; set; }
+    public string LastName { get; set; }
+    public string FirstName { get; set; }
+    public string Email { get; set; }
+  }
+
+  public enum PaymentMethod {
+    Cheque,
+    Visa,
+    MasterCard,
+    PayPal,
+    Diners
+  }
+
+  public class Product {
+    public long Id { get; set; }
+    public string Name { get; set; }
+    public string Description { get; set; }
+    public string ProductType { get; set; }
+    public double Price { get; set; }
+  }
+
+  public class User {
+  }
+
+  public enum OrderState {
+    Created,
+    Active,
+    Suspended,
+    Overdue,
+    Finished
+  }
+
+  public class Order {
+    public long Id { get; set; }
+    public User User { get; set; }
+    public string BillingType { get; set; }
+    public OrderState State { get; set; }
+    public string BillingPeriod { get; set; }
+    public DateTime ActiveSince { get; set; }
+    public DateTime ActiveUntil { get; set; }
+    public IList<Invoice> Invoices { get; set; }
+  }
+
+  public class OrderLine {
+    public long Id { get; set; }
+    public Order Order { get; set; }
+    public Product Product { get; set; }
+    public int Quantity { get; set; }
+    public double ProductPrice { get; set; }
+  }
+
+  public class Invoice {
+    public long Id { get; set; }
+    public User User { get; set; }
+    public DateTime Due { get; set; }
+    public string Status { get; set; }
+    public string InvoiceDocument { get; set; }
+    public Order Order { get; set; }
+  }
+
+  public class InvoiceLine {
+    public long Id { get; set; }
+    public Invoice Invoice { get; set; }
+    public Product Product { get; set; }
+    public int Quantity { get; set; }
+    public double ProductPrice { get; set; }
+  }
+
+
+}
