layering the code