improviments on gitp function