Added abstract player and compound player