Controlling for Time-dependent Confounding using Marginal Structural Models