ENHANCEMENT further refactors