sparse ICP first commit - still needs to be debugged and cleaned up