refactor and add actor