Initial subscription impl. Needs tests and refactoring