fixes and impreovements