update + enhancements