updated with a boilerplate component