This is because With_Static_Subject and With_Subject each have methods that are named identically. This causes these methods to be overridden by one, or the other, and cause unexpected behavior.
The only obvious solution is to change the name of the methods in either With_Static_Subject or With_Subject to make it possible to have both in a single class.