finished changes to implementation