WIP: Works with Linux, need clean-up