implement various changes