Major Refactoring- Added more type-safety to SerDes passing