refining - still debugging.