initial card implementation