Add component boilerplate, fixes #163