compiled for enhancements #4 and #5