Added component and layout, plus shared.js