Refactor signals/datalayer into separate modules