Revert "Implemented Factory Method. Program working. Missing some clown parts though"

This reverts commit ea1d2f98eaa0e858a4d3eaa76db432182e576b7c.
Revert "Revert "Implemented Factory Method. Program working. Missing some clown parts though""

This reverts commit 199e366b900e009950598d6bff01865227c810d8.
Added missing files