new feature. fixing bugs