high level subcsription interface, fix subscription bug

high level subscrption is of course broken, till we add async support. but it does not break anything wo we can merge