more work on the concepts and the algorithms