slight update to implementation