Also see the work already being done by @Xaero on pull request #2. The comment on that post highlights some issues on what should still be resolved.