added proper learning