Refactor: use Level as separate class