refactor last version