implementation for single card