several internal enhancements