add short cuts,validation and all tests completed