Some refactoring + fixed camo upgrade