Reworked subject to accept optional configuration in constructor