fix to play implementation and add couple of macros