starting to simplify things, and adding (incomplete) player active/inactive detection (see #27)