added basic cart func