First version. marlin.py still needs updating