Updated Working Version