added onPreRender and onPostRender callbacks, also added onComponentBound