updated approach