implement more state mehtods