full refactor / and texting out implemented