Add a Layer and Refactor