Complete Implementation