Cloud

Refactoring, add new abstractions