core refactor continued