refactor, not backwards compatibility