refactoring using updated sulaco