copyrights (c) by hanshans &