added more functional groups