improvement in progress. modify output later