big update due to bugs