updates to implementation of previous