re-factored bubble up feature for performance