Self-scheduling: an innovative approach.