basic card data structure is mostly done