added virtual Command::compile