good advise, I'll refactor this