implemented Wake class; needs testing