-some implementation added...