I will solve that typedef issue later, not writing down my plans in code form
documentation
fixed a bunch of issues, but I still need to figure out the type for that port member