Still WIP but approaching a workable state