some minor refactoring
added uftdi