Finished Implementation