MOAR refactor work. Huge API changes