stream (wip); service layer refactor (wip)