back up 2
finish seperate function