refactor version 0.3