Added a lot of behaivor