Refactor everything - breaking changes