done up to codebreaker