Semi-Working Implementation