seperated prompt logic out into sub module