Project finished. Not perfect, but works.