This is currently broken, but a starting point for further work.
Still need to implement lines to the individual parts