UVM was designed and aimed at standardizing the verification methodologies, which is a consolidation effort from the EDA vendors and Verification community by using best of the features from other commonly and matured methodologies like VMM and OVM libraries. It has a rich set of features which are aimed at making the test environment and components more reusable and robust. UVM Factory and UVM Callbacks are two features among many which are predominately aimed at making the testbench reusable. This paper looks at these two features in depth and makes an attempt to suggest better ways of using them.