Refactor

ongoing pr, opening so we can discuss crit :D
don't we need 1.x?