various changes to be reworked