changed components to have useful member methods.