Oh god matrix is hideous now. Added a getset modifier and changed Component_X_New functions to take public member initializers as arguments.