slight architectural flaw corrected