Fully working version after great refactor. Note laser firing direction is a feature.