broke out logical layers