refactor, add license