prepared for abstract class Command