working on factoral program