Improvements to implementation