I still don't feel comfortable about this code being repeated... I recommend that PlayIO has its own library and that the router depend on it.