Components

Get components into the extension to have cleaner and more maintanable
code. Also more easy to extend later on.