separated into components