Allow custom element factories, modified factory injection
ElementFactory
Moved stuff around
Renamed Factory -> ElementFactory
Prepare tests