added more functional programs