add print molecule virtual function