Added component base classes and moved things into common folder