refactored wake on lan