abstract inner workings of deck