first draft for layer model