added the Layer interface, updated the docs