Moved projects around for better modularity (separation of api and
implementation)
implemented GContracts for Design by Contract