updates to implementation