re-implemented source listing. fixes #448