This needs discussion, how should `scope`, `name`, etc be handled?