layering in some more complexity