Start of core refactor/rewrite?