components, refactor (1)