fix all bugs on sits(), add some tests for sits()