Updated TODO for later use
Created Factory and implementations