complete overhaul - new approach