setting up component structure