wip, new approach

will rebase and force push over this