refactor to renderables and collectors